Docker Compose ব্যবহার করে একটি Multi-container Application তৈরি করা একটি সহজ এবং কার্যকর প্রক্রিয়া। এটি বিভিন্ন কন্টেইনারকে একত্রিত করে একটি স্বতন্ত্র অ্যাপ্লিকেশন তৈরি করতে সক্ষম করে, যেখানে প্রতিটি কন্টেইনার একটি নির্দিষ্ট পরিষেবা পরিচালনা করে। এখানে একটি উদাহরণ দেয়া হলো যা একটি ওয়েব অ্যাপ্লিকেশন, একটি ডেটাবেস এবং একটি ক্যাশ সার্ভার নিয়ে গঠিত।
আমরা একটি সাধারণ ওয়েব অ্যাপ্লিকেশন তৈরি করবো যা Flask (Python ফ্রেমওয়ার্ক) ব্যবহার করে এবং PostgreSQL ডেটাবেস এবং Redis ক্যাশ ব্যবহার করবে।
প্রথমে একটি নতুন ডিরেক্টরি তৈরি করুন এবং সেখানে যান:
mkdir my-multi-container-app
cd my-multi-container-app
একটি ফাইল তৈরি করুন app.py
নামে এবং নিচের কোড লিখুন:
from flask import Flask
import os
import psycopg2
app = Flask(__name__)
@app.route('/')
def hello():
return "Hello from Flask!"
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
requirements.txt
তৈরি করাএকটি requirements.txt
ফাইল তৈরি করুন এবং নিচের লাইব্রেরিগুলি যুক্ত করুন:
Flask
psycopg2-binary
একটি Dockerfile
তৈরি করুন এবং নিম্নলিখিত কনটেন্ট যুক্ত করুন:
# বেস ইমেজ হিসাবে Python ব্যবহার করা হচ্ছে
FROM python:3.9-slim
# কাজের ডিরেক্টরি সেট করুন
WORKDIR /app
# প্রয়োজনীয় ফাইলগুলি কপি করুন
COPY requirements.txt .
# নির্ভরতাগুলি ইনস্টল করুন
RUN pip install -r requirements.txt
# অ্যাপ্লিকেশন কপি করুন
COPY . .
# ডিফল্ট কমান্ড নির্ধারণ করুন
CMD ["python", "app.py"]
docker-compose.yml
ফাইল তৈরি করাএখন, docker-compose.yml
ফাইল তৈরি করুন এবং নিচের কনটেন্ট যুক্ত করুন:
version: '3.8'
services:
web:
build: .
ports:
- "5000:5000"
depends_on:
- db
- cache
db:
image: postgres:latest
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: password
POSTGRES_DB: mydatabase
volumes:
- db-data:/var/lib/postgresql/data
cache:
image: redis:latest
volumes:
db-data:
Docker Compose অ্যাপ্লিকেশন তৈরি করতে, নিচের কমান্ডটি ব্যবহার করুন:
docker-compose up --build
--build
ফ্ল্যাগটি নিশ্চিত করে যে Dockerfile থেকে নতুন ইমেজ তৈরি করা হবে।ব্রাউজারে গিয়ে http://localhost:5000
খুলুন। আপনি "Hello from Flask!" বার্তা দেখতে পাবেন।
কন্টেইনারগুলি বন্ধ করতে, নিচের কমান্ডটি ব্যবহার করুন:
docker-compose down
Docker Compose ব্যবহার করে Multi-container Application তৈরি করা সহজ এবং কার্যকর। উপরের উদাহরণে, একটি Flask অ্যাপ্লিকেশন, PostgreSQL ডেটাবেস এবং Redis ক্যাশ সার্ভার নিয়ে একটি অ্যাপ্লিকেশন তৈরি করা হয়েছে। docker-compose.yml
ফাইলটি সমস্ত সার্ভিস এবং নির্ভরতাগুলি সংজ্ঞায়িত করে, যা ডেভেলপমেন্ট এবং ডিপ্লয়মেন্ট প্রক্রিয়াকে সহজ করে তোলে। Docker Compose আপনার কন্টেইনার ভিত্তিক অ্যাপ্লিকেশনগুলি কার্যকরভাবে পরিচালনা করতে সাহায্য করে।